﻿using System.Collections.Generic;

namespace _1_3
{
    class Product
    {
        public string Name { get; private set; }
        public decimal Price { get; private set; }

        public Product(string name, decimal price)
        {
            Name = name;
            Price = price;
        }

        Product() { }

        public static List<Product> GetSampleProducts()
        {
            return new List<Product>
            {
            new Product("West Side Story", 9.99m),
            new Product("Assassins", 14.99m),
            new Product("Frogs", 13.99m),
            new Product("Sweeny", 10.99m)
            };
        }
        
        public override string ToString()
        {
            return string.Format("{0}: {1}", Name, Price);
        }
    }
}
//代码中使用了自动属性和列表初始化器，大大简化了代码
//现在不再有任何代码（或者可见的变量）与属性关联，而且硬编码的列表是以一种全然不同的方式构建的。
//由于没有name和price变量可供访问，我们必须在类中处处使用属性，这增强了一致性。
//现在有一个私有的无参构造函数，用于新的基于属性的初始化。（设置这些属性之前，会对每一项调用这个构造函数。）
//在本例中，实际上可以完全删除旧的公共构造函数。但这样一来，外部代码就不能再创建其他的产品实例了。